<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <title>我的通讯录</title>
    <style>
        h1,th{ color:red;}
        input{
            padding: 8px;
            border-radius: 6px;
            margin: 5px 0;
        }
        .errMsg{
            color: red;
            font-weight: bold;
        }
    </style>
</head>
<body><?php
try{
    $db=new PDO('mysql:host=localhost;dbname=db','root','12qwas');
    if($_POST){ //提交有数据
        $xh=$_POST['xh'];
        $name=$_POST['name'];
        $tel=$_POST['tel'];
        if ($_GET['xh']){// 提供有URL参数 xh，表示要更新用户的信息
            $ps=$db->prepare("update students set xh=?, name=?, tel=? where xh=?");
            $ps->execute(array($xh,$name,$tel,$_GET['xh']));
        }else{//没有提供有URL参数 xh，表示是注册的新用户
            $ps=$db->prepare("insert into students (xh, name, tel) values (?,?,?)");
            $ps->execute(array($xh,$name,$tel));
        }
        header('location:index.php'); //没有异常就直接重定向到首页
        return;
    }else if ($_GET['xh']){ //尚未提交数据，对修改来说，需要获取原来信息并显示以便用户修改
        $ps=$db->prepare("select * from students where xh=?");
        $ps->execute(array($_GET['xh']));
        $user=$ps->fetch(PDO::FETCH_ASSOC);
        if($user){
            $xh=$_GET['xh'];
            $name=$user['name'];
            $tel=$user['tel'];
        }
    }
}catch(Throwable $e){
    $errMsg = $e->getMessage();
}
?>
<h1><?=$_GET['xh']?'修改用户信息':'注册新用户'?></h1>
<form method="POST">
    学号：<input type="text" name="xh" value="<?=htmlentities($xh??'')?>" /><br>
    姓名：<input type="text" name="name" value="<?=htmlentities($name??'')?>"/><br>
    电话：<input type="text" name="tel" value="<?=htmlentities($tel??'')?>"/><br>
    <div class="errMsg"><?=htmlentities($errMsg??'')?></div>
    <input type="submit" value="<?=$_GET['xh']?'修改用户信息':'注册新用户'?>" /><br>
</form>
</body>
</html>